package cn.iocoder.yudao.module.system.controller.admin.chaoshun.vo.sp;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.TableField;
import com.mzt.logapi.starter.annotation.DiffLogField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Schema(description = "超顺物流 - 物流信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ChaoshunspRespVO{

    @Schema(description = "货品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("货品编号")
    @ExcelIgnore
    private Long id;

    @Schema(description = "运单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @ExcelProperty("运单号")
    @ColumnWidth(value = 16)
    private String ydh;

    @Schema(description = "收货人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @DiffLogField(name = "收货人")
    @ExcelProperty("收货人")
    @ColumnWidth(value = 8)
    private String shr2;

    @Schema(description = "收货电话", requiredMode = Schema.RequiredMode.REQUIRED, example = "16651117024")
    @DiffLogField(name = "收货电话")
    @ExcelProperty("收货电话")
    @ColumnWidth(value = 13)
    private String shdh;

    @Schema(description = "货名", requiredMode = Schema.RequiredMode.REQUIRED, example = "手机")
//    @Size(max = 30, message = "用户昵称长度不能超过30个字符")
    @DiffLogField(name = "货名")
    @ExcelProperty("货名")
    @ColumnWidth(value = 9)
    private String spmc;

    @Schema(description = "件数", requiredMode = Schema.RequiredMode.REQUIRED, example = "13")
    @DiffLogField(name = "件数")
    @ExcelProperty("件数")
    @ColumnWidth(value = 5)
    private Integer js;

    @Schema(description = "运费", requiredMode = Schema.RequiredMode.REQUIRED, example = "20")
    @DiffLogField(name = "运费")
    @ExcelProperty("运费")
    @ColumnWidth(value = 5)
    private String yf;

    @Schema(description = "方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    @DictFormat(DictTypeConstants.COMMON_YFZFFS)
    @ExcelProperty(value = "方式", converter = DictConvert.class)
    @ColumnWidth(value = 5)
    private Integer yffs;

    private String yffsmc;

    @Schema(description = "货款", requiredMode = Schema.RequiredMode.REQUIRED, example = "50")
    @DiffLogField(name = "货款")
    @ExcelProperty("货款")
    @ColumnWidth(value = 5)
    private String hk;

    @Schema(description = "方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    @DictFormat(DictTypeConstants.COMMON_HKZFFS)
    @ExcelProperty(value = "方式", converter = DictConvert.class)
    @ColumnWidth(value = 5)
    private Integer hkfs;

    private String hkfsmc;

    @Schema(description = "发货人", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @ExcelProperty("发货人")
    @ColumnWidth(value = 8)
    private String fhr;

    @Schema(description = "发货电话", requiredMode = Schema.RequiredMode.REQUIRED, example = "16651117024")
    @DiffLogField(name = "发货电话")
    @ExcelProperty("发货电话")
    @ColumnWidth(value = 13)
    private String fhdh;

    @Schema(description = "短信发送状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    @DictFormat(DictTypeConstants.COMMON_SF)
//    @ExcelProperty(value = "短信发送状态", converter = DictConvert.class)
    @ColumnWidth(value = 2)
    private Integer status;

    @Schema(description = "是否上门", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
    @DictFormat(DictTypeConstants.COMMON_SF_EXPORT)
    @ExcelProperty(value = "是否上门", converter = DictConvert.class)
//    @ExcelProperty(value = "是否上门", converter = DictConvert.class)
    @ColumnWidth(value = 4)
    private Integer sfsm;

    private String sfsmmc;

    @Schema(description = "收货地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "江苏徐州玄武湖大门口")
    @ExcelProperty("收货地址")
    @ColumnWidth(value = 20)
    private String shdz;

    @Schema(description = "备注", requiredMode = Schema.RequiredMode.REQUIRED, example = "加急运送")
    @ExcelProperty("备注")
    @ColumnWidth(value = 8)
    private String remark;

    @Schema(description = "录入时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "时间戳格式")
    @ExcelProperty("录入时间")
    @ColumnWidth(value = 20)
    @ExcelIgnore
    private LocalDateTime lrsj;

    @Schema(description = "商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
    @ExcelProperty("商品状态")
    @ExcelIgnore
    private Integer spzt;

    @Schema(description = "延迟次数", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    @ExcelProperty("延迟次数")
    @ExcelIgnore
    private Integer yccs;

    @Schema(description = "是否返货", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    @ExcelProperty("是否返货")
    @ExcelIgnore
    private Integer sffh;

    @Schema(description = "特征", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "延")
    @ExcelProperty("特征")
    @ExcelIgnore
    private String tz;

    @Schema(description = "是否补录", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    @ExcelProperty("是否补录")
    @ExcelIgnore
    private Integer sfbl;

    @Schema(description = "送货人", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    @ExcelProperty("送货人")
    @ExcelIgnore
    private String songhr;

    @Schema(description = "送货费", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    @ExcelProperty("送货费")
    @ExcelIgnore
    private String shf;

    @Schema(description = "送货提成", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "1")
    @ExcelProperty("送货提成")
    @ExcelIgnore
    @TableField(value = "shtc")
    private String shtc;

    @Schema(description = "送货时间", requiredMode = Schema.RequiredMode.NOT_REQUIRED, example = "时间戳格式")
    @ExcelProperty("送货时间")
    @ExcelIgnore
    @TableField(value = "apshsj")
    private LocalDateTime apshsj;

}
